NexusPi Git Node
extra_script.py v1.0.2 (6229ecae) Text, 8.49 KB
Tff7b72import T7ee787time
Tff7b72import T7ee787hashlib
Tff7b72import T7ee787shutil
Te6edf3ImportTb4b4b4(Ta5d6ff"Ta5d6ffenvTa5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffReplaceTb4b4b4(Te6edf3PROGNAMETff7b72=Ta5d6ff"Ta5d6ffrnode_firmware_Tffd700%sTa5d6ff" Tff7b72% Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffcustom_variantTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPROGNAME:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e#
T8b949e# Custom targets
T8b949e#
Tff7b72def Td2a8fftarget_packageTb4b4b4(Te6edf3targetTb4b4b4, Te6edf3sourceTb4b4b4, Te6edf3envTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6fftarget_package...Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBoard:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffVariant:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffcustom_variantTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# do some actions
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Te6edf3board Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)
Te6edf3firmware_packageTb4b4b4(Te6edf3envTb4b4b4)
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3platformTb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffespressif32Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffAddCustomTargetTb4b4b4(
Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffpackageTa5d6ff"Tb4b4b4,
Te6edf3dependenciesTff7b72=Ta5d6ff"Ta5d6ff$BUILD_DIR/$Tffd700{PROGNAME}Ta5d6ff.binTa5d6ff"Tb4b4b4,
Te6edf3actionsTff7b72=Tb4b4b4[
Te6edf3target_package
Tb4b4b4]Tb4b4b4,
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffPackageTa5d6ff"Tb4b4b4,
Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffPackage esp32 firmware for deliveryTa5d6ff"
Tb4b4b4)
Tff7b72elif Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffnordicnrf52Ta5d6ff"Tb4b4b4)Tb4b4b4:
T8b949e# remove --specs=nano.specs to allow exceptions to work
Tff7b72if Ta5d6ff'Ta5d6ff--specs=nano.specsTa5d6ff' Tff7b72in Te6edf3envTb4b4b4[Ta5d6ff'Ta5d6ffLINKFLAGSTa5d6ff'Tb4b4b4]Tb4b4b4:
Te6edf3envTb4b4b4[Ta5d6ff'Ta5d6ffLINKFLAGSTa5d6ff'Tb4b4b4]Tff7b72.Td2a8ffremoveTb4b4b4(Ta5d6ff'Ta5d6ff--specs=nano.specsTa5d6ff'Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffAddCustomTargetTb4b4b4(
Te6edf3nameTff7b72=Ta5d6ff"Ta5d6ffpackageTa5d6ff"Tb4b4b4,
Te6edf3dependenciesTff7b72=Ta5d6ff"Ta5d6ff$BUILD_DIR/$Tffd700{PROGNAME}Ta5d6ff.zipTa5d6ff"Tb4b4b4,
Te6edf3actionsTff7b72=Tb4b4b4[
Te6edf3target_package
Tb4b4b4]Tb4b4b4,
Te6edf3titleTff7b72=Ta5d6ff"Ta5d6ffPackageTa5d6ff"Tb4b4b4,
Te6edf3descriptionTff7b72=Ta5d6ff"Ta5d6ffPackage nrf52 firmware for deliveryTa5d6ff"
Tb4b4b4)
T8b949e#
T8b949e# Upload actions
T8b949e#
Tff7b72def Td2a8ffpre_uploadTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3targetTb4b4b4, Te6edf3envTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffpre_upload...Ta5d6ff"Tb4b4b4)
T8b949e# do some actions
Tff7b72def Td2a8ffpost_uploadTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3targetTb4b4b4, Te6edf3envTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffpost_upload...Ta5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBoard:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffVariant:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffcustom_variantTa5d6ff"Tb4b4b4)Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffSerial port:Ta5d6ff"Tb4b4b4, Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
T8b949e# do some actions
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Te6edf3board Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffespressif32Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff10Tb4b4b4)
T8b949e# device provisioning is incomplete and only currently appropriate for 915MHz T-Beam
Te6edf3device_provisionTb4b4b4(Te6edf3envTb4b4b4)
Te6edf3firmware_hashTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3envTb4b4b4)
T8b949e# firmware pacakaging is incomplete due to missing console image
T8b949e#firmware_package(env)
Tff7b72elif Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffnordicnrf52Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff5Tb4b4b4)
T8b949e# device provisioning is incomplete and only currently appropriate for 915MHz RAK4631
Te6edf3device_provisionTb4b4b4(Te6edf3envTb4b4b4)
Te6edf3firmware_hashTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3envTb4b4b4)
T8b949e# firmware pacakaging is incomplete due to missing console image
T8b949e#firmware_package(env)
Tff7b72def Td2a8ffpost_cleanTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3targetTb4b4b4, Te6edf3envTb4b4b4)Tb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffpost_clean...Ta5d6ff"Tb4b4b4)
Te6edf3core_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$CORE_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffcore_dir:Ta5d6ff"Tb4b4b4, Te6edf3core_dirTb4b4b4)
Te6edf3packages_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PACKAGES_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffpackages_dir:Ta5d6ff"Tb4b4b4, Te6edf3packages_dirTb4b4b4)
Te6edf3project_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROJECT_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffproject_dir:Ta5d6ff"Tb4b4b4, Te6edf3project_dirTb4b4b4)
T8b949e#build_dir = env.subst("$BUILD_DIR").get_abspath()
Te6edf3build_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$BUILD_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffbuild_dir:Ta5d6ff"Tb4b4b4, Te6edf3build_dirTb4b4b4)
Te6edf3build_cache_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PLATFORMIO_BUILD_CACHE_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffbuild_cache_dir:Ta5d6ff"Tb4b4b4, Te6edf3build_cache_dirTb4b4b4)
Te6edf3workspace_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PLATFORMIO_WORKSPACE_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffworkspace_dir:Ta5d6ff"Tb4b4b4, Te6edf3workspace_dirTb4b4b4)
T8b949e#shutil.rmtree(directory_path)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrm -f Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.zipTa5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffAddPreActionTb4b4b4(Ta5d6ff"Ta5d6ffuploadTa5d6ff"Tb4b4b4, Te6edf3pre_uploadTb4b4b4)
Te6edf3envTff7b72.Td2a8ffAddPostActionTb4b4b4(Ta5d6ff"Ta5d6ffuploadTa5d6ff"Tb4b4b4, Te6edf3post_uploadTb4b4b4)
Te6edf3envTff7b72.Td2a8ffAddPostActionTb4b4b4(Ta5d6ff"Ta5d6ffcleanTa5d6ff"Tb4b4b4, Te6edf3post_cleanTb4b4b4)
Tff7b72def Td2a8ffdevice_wipeTb4b4b4(Te6edf3envTb4b4b4)Tb4b4b4:
T8b949e# Device wipe
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffWiping device...Ta5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --eeprom-wipe Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8ffdevice_provisionTb4b4b4(Te6edf3envTb4b4b4)Tb4b4b4:
T8b949e# Device provision
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffProvisioning device...Ta5d6ff"Tb4b4b4)
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3platformTb4b4b4)
Te6edf3board Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBoard:Ta5d6ff"Tb4b4b4, Te6edf3boardTb4b4b4)
Te6edf3variant Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffcustom_variantTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffVariant:Ta5d6ff"Tb4b4b4, Te6edf3variantTb4b4b4)
Tff7b72if Te6edf3variant Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6fftbeamTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fftbeam_localTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --product e0 --model e9 --hwrev 1 --rom Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3variant Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6fflora32v21Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fflora32v21_localTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --product b1 --model b9 --hwrev 1 --rom Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3variant Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6ffheltec32v4Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffheltec32v4_localTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffheltec32v4_boundaryTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffheltec32v4_boundary_localTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --product b1 --model b9 --hwrev 1 --rom Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3variant Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6ffrak4631Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffrak4631_localTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --product 10 --model 12 --hwrev 1 --rom Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elif Te6edf3variant Tff7b72in Tb4b4b4(Ta5d6ff"Ta5d6ffheltec_t114Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffheltec_t114_localTa5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --product c2 --model c7 --hwrev 1 --rom Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72def Td2a8fffirmware_hashTb4b4b4(Te6edf3sourceTb4b4b4, Te6edf3envTb4b4b4)Tb4b4b4:
T8b949e# Firmware hash
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffUpdating firmware hash...Ta5d6ff"Tb4b4b4)
Te6edf3source_file Tff7b72= Te6edf3sourceTb4b4b4[T79c0ff0Tb4b4b4]Tff7b72.Td2a8ffget_abspathTb4b4b4(Tb4b4b4)
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3platformTb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffnordicnrf52Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3build_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$BUILD_DIRTa5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffcd Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff; unzip -o Ta5d6ff" Tff7b72+ Te6edf3source_file Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.binTa5d6ff"Tb4b4b4)
T8b949e#source_file.replace(".zip", ".bin")
Te6edf3source_file Tff7b72= Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.binTa5d6ff"Tb4b4b4;
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffsource_file:Ta5d6ff"Tb4b4b4, Te6edf3source_fileTb4b4b4)
Te6edf3firmware_data Tff7b72= Tffa657openTb4b4b4(Te6edf3source_fileTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4)Tff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Te6edf3calc_hash Tff7b72= Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3firmware_dataTb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Te6edf3hex_hash Tff7b72= Te6edf3calc_hashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6fffirmware_hash:Ta5d6ff"Tb4b4b4, Te6edf3hex_hashTb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --firmware-hash Ta5d6ff" Tff7b72+ Te6edf3hex_hash Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffsource_file:Ta5d6ff"Tb4b4b4, Te6edf3source_fileTb4b4b4)
Te6edf3firmware_data Tff7b72= Tffa657openTb4b4b4(Te6edf3source_fileTb4b4b4, Ta5d6ff"Ta5d6ffrbTa5d6ff"Tb4b4b4)Tff7b72.Td2a8ffreadTb4b4b4(Tb4b4b4)
Te6edf3calc_hash Tff7b72= Te6edf3hashlibTff7b72.Td2a8ffsha256Tb4b4b4(Te6edf3firmware_dataTb4b4b4[T79c0ff0Tb4b4b4:Tff7b72-T79c0ff32Tb4b4b4]Tb4b4b4)Tff7b72.Td2a8ffdigestTb4b4b4(Tb4b4b4)
Te6edf3part_hash Tff7b72= Te6edf3firmware_dataTb4b4b4[Tff7b72-T79c0ff32Tb4b4b4:Tb4b4b4]
Te6edf3hex_hash Tff7b72= Te6edf3calc_hashTff7b72.Td2a8ffhexTb4b4b4(Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6fffirmware_hash:Ta5d6ff"Tb4b4b4, Te6edf3hex_hashTb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3calc_hash Tff7b72== Te6edf3part_hashTb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrnodeconf --firmware-hash Ta5d6ff" Tff7b72+ Te6edf3hex_hash Tff7b72+ Ta5d6ff"Ta5d6ff Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$UPLOAD_PORTTa5d6ff"Tb4b4b4)Tb4b4b4)
Tff7b72elseTb4b4b4:
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffCalculated hash does not match!Ta5d6ff"Tb4b4b4)
Tff7b72def Td2a8fffirmware_packageTb4b4b4(Te6edf3envTb4b4b4)Tb4b4b4:
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Te6edf3board Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)
T8b949e# Firmware package
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBuilding firmware package...Ta5d6ff"Tb4b4b4)
Te6edf3platform Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffplatformTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffPlatform:Ta5d6ff"Tb4b4b4, Te6edf3platformTb4b4b4)
Te6edf3board Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffboardTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffBoard:Ta5d6ff"Tb4b4b4, Te6edf3boardTb4b4b4)
Te6edf3variant Tff7b72= Te6edf3envTff7b72.Td2a8ffGetProjectOptionTb4b4b4(Ta5d6ff"Ta5d6ffcustom_variantTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffVariant:Ta5d6ff"Tb4b4b4, Te6edf3variantTb4b4b4)
Te6edf3core_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$CORE_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffcore_dir:Ta5d6ff"Tb4b4b4, Te6edf3core_dirTb4b4b4)
Te6edf3packages_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PACKAGES_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffpackages_dir:Ta5d6ff"Tb4b4b4, Te6edf3packages_dirTb4b4b4)
Te6edf3workspace_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$WORKSPACE_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffworkspace_dir:Ta5d6ff"Tb4b4b4, Te6edf3workspace_dirTb4b4b4)
Te6edf3project_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROJECT_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffproject_dir:Ta5d6ff"Tb4b4b4, Te6edf3project_dirTb4b4b4)
T8b949e#build_dir = env.subst("$BUILD_DIR").get_abspath()
Te6edf3build_dir Tff7b72= Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$BUILD_DIRTa5d6ff"Tb4b4b4)
Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffbuild_dir:Ta5d6ff"Tb4b4b4, Te6edf3build_dirTb4b4b4)
Tff7b72if Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffespressif32Ta5d6ff"Tb4b4b4)Tb4b4b4:
T8b949e#env.Execute("cp " + packages_dir + "/framework-arduinoespressif32/tools/partitions/boot_app0.bin " + build_dir + "/rnode_firmware_" + variant + ".boot_app0")
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffcp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/rnode_firmware_Ta5d6ff" Tff7b72+ Te6edf3variant Tff7b72+ Ta5d6ff"Ta5d6ff.boot_app0Ta5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffcp Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/bootloader.bin Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.bootloaderTa5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffcp Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/partitions.bin Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.partitionsTa5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffrm -f Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.zipTa5d6ff"Tb4b4b4)
Te6edf3zip_cmd Tff7b72= Ta5d6ff"Ta5d6ffzip --junk-paths Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/rnode_firmware_Ta5d6ff" Tff7b72+ Te6edf3variant Tff7b72+ Ta5d6ff"Ta5d6ff.zip Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/esptool/esptool.py Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/console_image.bin Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.bin Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.boot_app0 Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.bootloader Ta5d6ff"
Te6edf3zip_cmd Tff7b72+Tff7b72= Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.partitions Ta5d6ff"
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Te6edf3zip_cmdTb4b4b4)
Tff7b72elif Tb4b4b4(Te6edf3platform Tff7b72== Ta5d6ff"Ta5d6ffnordicnrf52Ta5d6ff"Tb4b4b4)Tb4b4b4:
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffcp Ta5d6ff" Tff7b72+ Te6edf3build_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Ta5d6ff" Tff7b72+ Te6edf3envTff7b72.Td2a8ffsubstTb4b4b4(Ta5d6ff"Ta5d6ff$PROGNAMETa5d6ff"Tb4b4b4) Tff7b72+ Ta5d6ff"Ta5d6ff.zip Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/.Ta5d6ff"Tb4b4b4)
Te6edf3envTff7b72.Td2a8ffExecuteTb4b4b4(Ta5d6ff"Ta5d6ffpython Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/release_hashes.py > Ta5d6ff" Tff7b72+ Te6edf3project_dir Tff7b72+ Ta5d6ff"Ta5d6ff/Release/release.jsonTa5d6ff"Tb4b4b4)
Served by rngit 1.4.2 - Generated in 0.04s